package rmi;

import java.rmi.*;
import java.rmi.registry.*;
import java.sql.SQLException;
import java.util.List;

import entidade.Chamado;
import entidade.Divisao;
import entidade.Pessoa;
import entidade.Situacao;
import entidade.Usuario;

public class Cliente {

	private static Registry r;
	private static InterfaceSPDManager servico;

	public Cliente() {
		try {
			r = LocateRegistry.getRegistry("192.168.1.2", 1100);
			servico = (InterfaceSPDManager) r.lookup("Manager");
			
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public List<Usuario> listarUsuario() throws RemoteException, SQLException {
		return servico.listaUsuario();
	}

	public String inserirUsuario(Usuario u) throws RemoteException,	SQLException {
		return servico.insereUsuario(u);
	}
	
	public String alteraUsuario(Usuario u) throws RemoteException, SQLException {
		return servico.alteraUsuario(u);
	}
	
	public String excluiUsuario(Usuario u) throws RemoteException, SQLException {
		return servico.excluiUsuario(u);
	}
	
	public List<Usuario> retornaUsuario(Usuario usuario) throws RemoteException, SQLException {
		return servico.retornaUsuario(usuario);
	}
	
	public List<Pessoa> listarPessoa() throws RemoteException, SQLException {
		return servico.listaPessoa();
	}
	
	public List<Pessoa> listarCliente() throws RemoteException, SQLException {
		return servico.listaCliente();
	}
	
	public List<Pessoa> listarTecnico() throws RemoteException, SQLException {
		return servico.listaTecnico();
	}
	
	public List<Pessoa> retornaPessoa(Pessoa pessoa) throws RemoteException, SQLException {
		return servico.retornaPessoa(pessoa);
	}

	public String inserirPessoa(Pessoa p) throws RemoteException, SQLException {
		return servico.inserePessoa(p);
	}
	
	public String alteraPessoa(Pessoa p) throws RemoteException, SQLException {
		return servico.alteraPessoa(p);
	}
	
	public String excluiPessoa(Pessoa p) throws RemoteException, SQLException {
		return servico.excluiPessoa(p);
	}
	
	public Usuario validaUsuario(Usuario usuario) throws RemoteException, SQLException {
		return servico.validaUsuario(usuario);
	}
	
	public List<Chamado> listarChamado() throws RemoteException, SQLException {
		return servico.listaChamado();
	}

	public String inserirChamado(Chamado c) throws RemoteException,	SQLException {
		return servico.insereChamado(c);
	}
	
	public String alteraChamado(Chamado c) throws RemoteException, SQLException {
		return servico.alteraChamado(c);
	}
	
	public String excluiChamado(Chamado c) throws RemoteException, SQLException {
		return servico.excluiChamado(c);
	}
	
	public List<Chamado> retornaChamado(Chamado chamado) throws RemoteException, SQLException {
		return servico.retornaChamado(chamado);
	}
	
	public List<Situacao> listarSituacao() throws RemoteException, SQLException {
		return servico.listaSituacao();
	}

	public String inserirSituacao(Situacao s) throws RemoteException, SQLException {
		return servico.insereSituacao(s);
	}
	
	public String alteraSituacao(Situacao s) throws RemoteException, SQLException {
		return servico.alteraSituacao(s);
	}
	
	public String excluiSituacao(Situacao s) throws RemoteException, SQLException {
		return servico.excluiSituacao(s);
	}
	
	public Situacao retornaSituacao(Situacao situacao) throws RemoteException, SQLException {
		return servico.retornaSituacao(situacao);
	}
	
	public List<Divisao> listarDivisao() throws RemoteException, SQLException {
		return servico.listaDivisao();
	}

	public String inserirDivisao(Divisao d) throws RemoteException,	SQLException {
		return servico.insereDivisao(d);
	}
	
	public String alteraDivisao(Divisao d) throws RemoteException, SQLException {
		return servico.alteraDivisao(d);
	}
	
	public String excluiDivisao(Divisao d) throws RemoteException, SQLException {
		return servico.excluiDivisao(d);
	}
	
	public List<Divisao> retornaDivisao(Divisao divisao) throws RemoteException, SQLException {
		return servico.retornaDivisao(divisao);
	}

}
